const { DataTypes } = require("sequelize");

const requelize = require("../db/sequelize");

const User = require("./user.model");

/**
 * 定义用户模型类
 *
 * 该类代表了数据库中的用户表，包括表的结构和各种属性的定义。
 * 使用Sequelize的define方法来创建模型。
 */
const Dictionary = requelize.define(
  "db_dictionary",
  {
    id: {
      type: DataTypes.UUID,
      defaultValue: DataTypes.UUIDV4,
      unique: true,
      primaryKey: true,
      comment: "ID",
    },
    added_by: {
      type: DataTypes.STRING(64),
      allowNull: true,
      comment: "添加人ID",
    },
    title: {
      type: DataTypes.STRING(200),
      allowNull: false,
      comment: "名称",
    },
    icon_url: {
      type: DataTypes.STRING,
      allowNull: true,
      comment: "ICO URL",
    },
    type: {
      type: DataTypes.STRING(200),
      allowNull: false,
      comment: "类型",
    },
    code: {
      type: DataTypes.INTEGER,
      allowNull: false,
      comment: "编码",
    },
    color: {
      type: DataTypes.STRING(20),
      allowNull: true,
      comment: "颜色值",
    },

    is_it_enabled: {
      type: DataTypes.INTEGER(11),
      allowNull: true,
      defaultValue: 0,
      comment: "是否启用(0 启用 1 禁用)",
    },
  },
  {
    tableName: "db_dictionary",
    comment: "字典表",
  }
);
// 注释掉的代码块：这里原本是一个同步数据库表结构的调用，使用时需要解除注释并谨慎操作，因为它会强制同步表结构，可能导致数据丢失
// Dictionary.sync({ force: true });

// 导出用户模型，供其他模块使用
module.exports = Dictionary;
